// 给定一个 m x n 的矩阵，如果一个元素为 0 ，则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
// m == matrix.length
// n == matrix[0].length
// 1 <= m, n <= 200
// -231 <= matrix[i][j] <= 231 - 1

/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
var setZeroes = function(matrix) {
    let rowSet = new Set();
    let colSet = new Set();
    let rowLen = matrix.length;
    let colLen = matrix[0].length;
    for(let i = 0; i < rowLen; i++) {
        for(let j = 0; j < colLen; j++) {
            if (matrix[i][j] === 0) {
                rowSet.add(i);
                colSet.add(j);
            }
        }
    }
    for(let i = 0; i < rowLen; i++) {
        for(let j = 0; j < colLen; j++) {
            if (rowSet.has(i) || colSet.has(j)) {
                matrix[i][j] = 0;
            }
        }
    }
    return matrix;
};

console.log(setZeroes([[0,1,2,0],[3,4,5,2],[1,3,1,5]]));

